Today's communications systems include many elements such as servers, desktop computers, storage devices, and network systems, all of which include processors and memory. The speeds at which these processors operate have greatly increased as these systems have evolved. Processor speeds have generally increased faster than the speeds of memory devices, for instance dynamic random access memories, that are typically used to implement main memory systems.
One known way to improve the performance of a system including a fast processor and slower main memory is to employ a cache memory between the processor and the main memory. The cache memory is relatively small as compared to the main memory, and is typically constructed of high speed memory devices that are more expensive than the devices used to implement the main memory. Processor accesses to the main memory are stored in the cache. The purpose of the cache is to provide the processor access to high speed memory during a majority of the processor's memory accesses. The processor tends to find the data it needs in the cache because of the principle of “locality of reference”, wherein the processor tends to utilize relatively close memory addresses during a given period of time.
The concept of caching has been extended to storage systems. Large storage systems of today can include many gigabytes of data stored on fixed media such as hard disk drives or optical drives. Access to the data on such drives is slower than access to memory devices such as dynamic random access memory. Therefore, some large storage systems contain memory for caching disk data, so that recently accessed disk data can be returned more quickly. The performance of the storage system is thus enhanced.
As system performance requirements increase, caches become more prevalent. It is now likely that a computer system, such as a database server, will contain a cache for caching I/O operations. It is also likely that such a computer system is coupled with another system, such as a storage system, that also contains a cache. It would be desirable to maximize the efficiency of the caching operations in such systems.